// pages/duty/index.js
const util = require('../../utils/util.js')
const app = getApp();
Page({

  /**
   * 页面的初始数据
   * 
   */
  data: {
    list: [],
    params:{
      "startDate": null,
      "endDate":null,//util.formatTime(new Date())
      "oneself":null,//oneself=1 表示查询当前人  不给值或者其他值 都不查询
      "limit": getApp().data.limit,
      "page": 1
    },
    pageTotal:0,
    loadData: { "loadMoreHidden": true, "loadingHidden": true, 'loadMoreText': '暂无数据' },
    scroll: { "scrollTop": 0, "scrollHeight": 0 },
    debounce: null
  },
  
  bindStrDateChange: function (e) {
    var strDate = e.detail.value + ' 00:00';
    this.setData({
      list: [],
      ['params.startDate']: strDate,
      ['params.page']:1
    })
    this.doPostData(this,this.data.params);
  },
  bindEndDateChange: function (e) {
    var endDate = e.detail.value + ' 23:59';
    this.setData({
      list: [],
      ['params.endDate']: endDate,
      ['params.page']: 1
    })
    this.doPostData(this,this.data.params);
  },
  //加载初始值班数据
  initLoadData(){
    var strDateTime = util.formatTimeStamp(new Date().getTime(), 'Y-M-D') + ' 00:00'
    var endDateTime = util.formatTimeStamp(new Date().getTime(), 'Y-M-D') + ' 23:59'
    this.setData({
      ['params.startDate']: strDateTime,
      ['params.endDate']: endDateTime
    })
    this.doPostData(this,this.data.params);
  },
  //我的值班
  myDuty(){
    var oneself = this.data.params.oneself == 1 ? null : 1;
    this.setData({
      list: [],
      ['params.oneself']: oneself,
      ['params.page']: 1
    })
    this.doPostData(this,this.data.params);
  },
  doPostData(_this,params){
    _this.setData({
      loadingHidden: true
    })
    params.token = app.data.token;
    wx.request({
      url: getApp().data.app_server + "/weixin/duty/get-duty-record",
      method: 'post',
      data: params,
      success: function (res) {
        console.log(res);
        _this.setData({
          ['loadData.loadingHidden']: false
        })
        if (res.data.count > 0 ){
          console.log("列表数据处理")
          for ( var i = 0; i < res.data.data.length ; i++ ){
            res.data.data[i].dutyStartDate = util.formatTimeStamp(res.data.data[i].dutyStartDate,'Y-M-D h:m');
            res.data.data[i].dutyEndDate = util.formatTimeStamp(res.data.data[i].dutyEndDate, 'Y-M-D h:m');
          }
          var params = _this.data.params;
          var pageTotal = Math.ceil(res.data.count / _this.data.params.limit);
          _this.setData({
            list: _this.data.list.concat(res.data.data),//列表拼接
            ['loadData.loadMoreHidden']: false,
            params: params,
            pageTotal: pageTotal
          })
          if (pageTotal == 1){
            _this.setData({
              ['loadData.loadMoreText']: '已经到底部了',
              ['loadData.loadMoreHidden']: true
            })
          }
        }
      }
    })
  },
  bindDownLoad: function () {
    var _this = this;
    let debounce = this.data.timeout;
    if (debounce) clearTimeout(debounce);
    let curPage = _this.data.curPage + 1;
    // 防抖函数
    debounce = setTimeout(function () {
    //判断是否是最后一页，最后一页不加载数据了
      console.log("curPage:" + curPage + ",pageTotal" + _this.data.pageTotal);
      if (_this.data.pageTotal < curPage) {
        _this.setData({
          ['loadData.loadMoreText']: '已经到底部了',
          ['loadData.loadMoreHidden']: true
        })
      } else {
        _this.setData({
          ['params.page']: curPage,
          ['loadData.loadMoreHidden']: false
        })
        _this.doPostData(_this, _this.data.params);
      }
    }, 500);
    _this.setData({
      debounce: debounce
    })
  },
  scroll: function (event) {
    //该方法绑定了页面滚动时的事件，我这里记录了当前的position.y的值,为了请求数据之后把页面定位到这里来。
    this.setData({
      ['scroll.scrollTop']: event.detail.scrollTop
    });
  },
  refresh: function (event) {
    //该方法绑定了页面滑动到顶部的事件，然后做上拉刷新
    var _this = this;
    _this.setData({
      list: [],
      scrollTop: 0,
      ['params.page']: 1
    });
    _this.doPostData(_this, _this.data.params);
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.initLoadData();
    //这里要非常注意，微信的scroll-view必须要设置高度才能监听滚动事件，所以，需要在页面的onLoad事件中给scroll-view的高度赋值
    var that = this;
    wx.getSystemInfo({
      success: function (res) {
        console.info(res.windowHeight);
        that.setData({
          ['scroll.scrollHeight']: res.windowHeight -55
        });
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})